package com.qf;

public class MainApp {
    public static void main(String[] args) {

        //创建一个Runnable对象 (传统匿名内部类的方式)
        Runnable run = new Runnable() {
            @Override
            public void run() {
                System.out.println("run....");

                //这里我们是new了一个匿名内部类，这个内部类在编译时就会生成一个class文件
                //new匿名内部类对象，这个对象内部的this指的是这个new出来的匿名内部类对象
                System.out.println(this);
            }
        };

        //使用lambda表达式方式
        Runnable run2 = ()->{
            System.out.println("run2....");
            //通过lambda表达式创建的对象，在编译时不会进行处理，只有在运行时才会对其进行编译、创建对象操作
            //this指代不是new出来的这个lambda对象。指代的是外部类的对象 -- 延迟加载
//            System.out.println(this);
        };

        //调用
        run.run();
        run2.run();
    }
}
